第一次參賽,文筆大概沒有很好,望各位前輩不吝提供意見
首先,先簡單的提一下DevOps的概念: "development" and "operations"這兩個單字的組合就是DevOps,但去查過後就會發現,DevOps其實並不是很簡單的一個概念,表面上它代表的是三個含意:
產品必須要能短期快速地完成發布
產品紀要能夠快速發布,又要有一定的品質,因此必須有自動化的測試
產品必須要能持續性的改善,並且要減少許多人工的作業,降低人為疏失的風險
以上三點老闆們看到一錠很高興,But...
要能夠做到DevOps,企業裡必須要有敏捷開發的精神,並且有辦法實踐(不管是Scrum還是其他流派的敏捷),所有的主管、工程師都必須要學習並改變舊有的開發產品或專案的模式。
領導者也必須改變傳統的思維「接受創新並勇於嘗試失敗」(只會壓進度的老闆看到這可以先回家洗洗睡了),改變整個公司內部文化並不容易,因此DevOps的導入對於現行的傳統開發模式的專案公司來說勢必是一個非常難的課題。
所有的工程師都必須具有一定高度的技術水平,但若不會也沒關係。
你不懂得單元測試? 學!!!就對了!
你不懂得整合測試? 學!!!就對了!
你不懂得UI測試? 學!!!就對了!
你不懂得Git Flow? 學!!!就對了!
你不懂得Docker? 學!!!就對了!
你不懂得CI/CD? 學!!!就對了!
......etc
要導入DevOps並不容易,但回歸一點,
還沒開始DevOps的工程師或領導者,可能看到中間就會覺得:
「唉喲!這麼難喔!我幹嘛冒這風險」、
「我們公司現在這樣子也是活得好好的阿,何必改變?」、
「我現在用的技術又還沒被淘汰,我幹嘛要學新的一堆沒看過奇怪的名詞」
「TDD是三小?CI/CD是啥?」
「反正一定是一堆學新技術的人在帶風向」
......etc
舊有的開發模式已經不符合現在這個User為中心導向的市場,舉個例子:
當你有了一個想法,你開始構思、找來專家評估可行性、開始做SA分析、SD文件、進入到開發階段,然後又改需求,開發不斷的Delay,最後,你公司所有的RD完成了,就會看到以下的圖
當你還在瀑布式的開發時,別人已經先行釋出了一版到市場上拔草測風向,且不斷的改良,不斷的釋出新版,而你的產品上線時,已經被User覺得過時,而且還一堆Bug,要修復時發現舊的RD已經離職了,新的RD看不懂之前RD的Code,找不到人維護(打到這裡相信很多人都有相同的血淚史),最後打掉重做......
如果你是傳統IT產業或專案公司的老闆,你一定要知道:不是別人家的RD人數比你家的多,也不是對方都請的到神Carry的工程師,而是對方的企業文化跟你不一樣!
你如果想擁抱變化,你如果希望改變,那就請你放棄傳統的追殺進度的模式,好好的靜下心學習新的思維,因為
最後來個自我介紹,我是Akito,任職於Microsoft
接下來的29天,我會把我在微軟學到的DevOps分享給各位